C#

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C# >

C#_C# Console利用mspaint打开图像并保存的方法,本文实例讲述了C# Console利用msp

来源:网络整理  作者:  发布时间:2020-12-19 14:29
C# Console利用mspaint打开图像并保存的方法,本文实例讲述了C# Console利用mspaint打开图像并保存的方法。分享给大家供大家...

System.Diagnostics.Process process = new System.Diagnostics.Process(); process = System.Diagnostics.Process.Start("mspaint.exe", path); int processId = process.Id; AutomationElement element = FindWindowByProcessId(processId); System.Windows.Forms.SendKeys.SendWait("^s"); //发送 Ctrl + s 键 System.Windows.Forms.SendKeys.SendWait("%{F4}"); // 发送 Alt + F4 键

Where is the System.Windows.Automation

SendKeys.SendWait("{F5}"); //发送F5按键 SendKeys.SendWait("^s"); //发送 Ctrl + s 键 SendKeys.SendWait("%{F4}"); // 发送 Alt + F4 键 //按键 代码 BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL or DELETE {DELETE} 或 {DEL} DOWN ARROW {DOWN} END {END} ENTER {ENTER}或 ~ ESC {ESC} HELP {HELP} HOME {HOME} INS or INSERT {INSERT} 或 {INS} LEFT ARROW {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC} RIGHT ARROW {RIGHT} SendKeys.SendWait("+{TAB}"); SendKeys.SendWait("%f");//alt+f SendKeys.SendWait("{Tab}"); SendKeys.SendWait("{Enter}") //多次按键的代码 //为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。//例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

The UIAutomationClient.dll is located in this folder:

代码

public static AutomationElement FindWindowByProcessId(int processId) { AutomationElement targetWindow = null; int count = 0; try { Process p = Process.GetProcessById(processId); targetWindow = AutomationElement.FromHandle(p.MainWindowHandle); return targetWindow; } catch (Exception ex) { count++; StringBuilder sb = new StringBuilder(); string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString(); if (count > 5) { throw new InvalidProgramException(message, ex); } else { return FindWindowByProcessId(processId); } } }

模拟键盘输入

using System; using System.Text; using System.Diagnostics; using System.Threading; using System.Windows.Automation; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Forms; namespace UIATest { class Program { static void Main(string[] args) { Process process = Process.Start(@"E:\WorkBook\ATP\WpfApp\bin\Debug\WpfApp.exe"); int processId = process.Id; AutomationElement element = FindElementById(processId, "textBox1"); SendKeys sendkeys = new SendKeys(); sendkeys.Sendkeys(element, "Sending keys to input data"); Console.WriteLine(sendkeys.ToString()); sendkeys.Sendkeys(element, sendkeys.ContextMenu); Console.WriteLine(sendkeys.ToString()); Console.WriteLine("Test finised."); } /// <summary> /// Get the automation elemention of current form. /// </summary> /// <param>Process Id</param> /// <returns>Target element</returns> public static AutomationElement FindWindowByProcessId(int processId) { AutomationElement targetWindow = null; int count = 0; try { Process p = Process.GetProcessById(processId); targetWindow = AutomationElement.FromHandle(p.MainWindowHandle); return targetWindow; } catch (Exception ex) { count++; StringBuilder sb = new StringBuilder(); string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString(); if (count > 5) { throw new InvalidProgramException(message, ex); } else { return FindWindowByProcessId(processId); } } } /// <summary> /// Get the automation element by automation Id. /// </summary> /// <param>Window name</param> /// <param>Control automation Id</param> /// <returns>Automatin element searched by automation Id</returns> public static AutomationElement FindElementById(int processId, string automationId) { AutomationElement aeForm = FindWindowByProcessId(processId); AutomationElement tarFindElement = aeForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, automationId)); return tarFindElement; } } }

If you can't find in your Add Reference->.Net tab, then you have to use the Browse tab to go to the given path, and add the assembly (Right Click on the References, choose add reference, click browse tab):

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0

完整demo程序代码如下:

调用画图板压缩图片

相关热词: 方法 C# 实例

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/c/5642.shtml

最新文章
热门文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

C#_C# Console利用mspaint打开图像并保存的方法,本文实例讲述了C# Console利用msp

2020-12-19 编辑:

System.Diagnostics.Process process = new System.Diagnostics.Process(); process = System.Diagnostics.Process.Start("mspaint.exe", path); int processId = process.Id; AutomationElement element = FindWindowByProcessId(processId); System.Windows.Forms.SendKeys.SendWait("^s"); //发送 Ctrl + s 键 System.Windows.Forms.SendKeys.SendWait("%{F4}"); // 发送 Alt + F4 键

Where is the System.Windows.Automation

SendKeys.SendWait("{F5}"); //发送F5按键 SendKeys.SendWait("^s"); //发送 Ctrl + s 键 SendKeys.SendWait("%{F4}"); // 发送 Alt + F4 键 //按键 代码 BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL or DELETE {DELETE} 或 {DEL} DOWN ARROW {DOWN} END {END} ENTER {ENTER}或 ~ ESC {ESC} HELP {HELP} HOME {HOME} INS or INSERT {INSERT} 或 {INS} LEFT ARROW {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC} RIGHT ARROW {RIGHT} SendKeys.SendWait("+{TAB}"); SendKeys.SendWait("%f");//alt+f SendKeys.SendWait("{Tab}"); SendKeys.SendWait("{Enter}") //多次按键的代码 //为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。//例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

The UIAutomationClient.dll is located in this folder:

代码

public static AutomationElement FindWindowByProcessId(int processId) { AutomationElement targetWindow = null; int count = 0; try { Process p = Process.GetProcessById(processId); targetWindow = AutomationElement.FromHandle(p.MainWindowHandle); return targetWindow; } catch (Exception ex) { count++; StringBuilder sb = new StringBuilder(); string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString(); if (count > 5) { throw new InvalidProgramException(message, ex); } else { return FindWindowByProcessId(processId); } } }

模拟键盘输入

using System; using System.Text; using System.Diagnostics; using System.Threading; using System.Windows.Automation; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Forms; namespace UIATest { class Program { static void Main(string[] args) { Process process = Process.Start(@"E:\WorkBook\ATP\WpfApp\bin\Debug\WpfApp.exe"); int processId = process.Id; AutomationElement element = FindElementById(processId, "textBox1"); SendKeys sendkeys = new SendKeys(); sendkeys.Sendkeys(element, "Sending keys to input data"); Console.WriteLine(sendkeys.ToString()); sendkeys.Sendkeys(element, sendkeys.ContextMenu); Console.WriteLine(sendkeys.ToString()); Console.WriteLine("Test finised."); } /// <summary> /// Get the automation elemention of current form. /// </summary> /// <param>Process Id</param> /// <returns>Target element</returns> public static AutomationElement FindWindowByProcessId(int processId) { AutomationElement targetWindow = null; int count = 0; try { Process p = Process.GetProcessById(processId); targetWindow = AutomationElement.FromHandle(p.MainWindowHandle); return targetWindow; } catch (Exception ex) { count++; StringBuilder sb = new StringBuilder(); string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString(); if (count > 5) { throw new InvalidProgramException(message, ex); } else { return FindWindowByProcessId(processId); } } } /// <summary> /// Get the automation element by automation Id. /// </summary> /// <param>Window name</param> /// <param>Control automation Id</param> /// <returns>Automatin element searched by automation Id</returns> public static AutomationElement FindElementById(int processId, string automationId) { AutomationElement aeForm = FindWindowByProcessId(processId); AutomationElement tarFindElement = aeForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, automationId)); return tarFindElement; } } }

If you can't find in your Add Reference->.Net tab, then you have to use the Browse tab to go to the given path, and add the assembly (Right Click on the References, choose add reference, click browse tab):

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0

完整demo程序代码如下:

调用画图板压缩图片

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/c/5642.shtml

相关文章

风云图片

推荐阅读

返回C#频道首页